package com.homeassistant.updata;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;

import com.homeassistant.function.Function;
import com.homeassistant.xml.ParseXmlUtils;


import android.content.Context;
import android.content.pm.PackageInfo;
import android.util.Log;



/**
 * 版本更新类
 * 需要做的事，1、检查是否有新的版本 2、如果有新的版本下载新的版本文件 3、返回下载信息给用户
 * @author ym
 *
 */
public class UpdataManager {
	
	private UpdataInfo mUpdataInfo = null;
	private String curVersion;
    private Context mContext;

	/**
	 * 检查是否有新的版本
	 * 要做的事，1、读取远程版本文件 2、读取当前程序的版本信息 3、对比两者信息判断是否需要更新
	 * @return
	 * @throws Exception 
	 */
	public boolean CheckUpdataVer() throws Exception{
		getUpdataInfo();
		getCurVersion();
		if(!mUpdataInfo.getVersion().equals("")){
			if(!mUpdataInfo.getVersion().equals(curVersion)){
				return true;
			}
		}
		return false;
	}
	
	String s = "<?xml version=\"1.0\" encoding=\"utf-8\"?><Application><Version>1.2</Version><Url>http://127.0.0.1/a.apk</Url><Description>更新</Description></Application>";
	
	/**
	 * 获取服务器中的版本信息
	 * 要做的事，1、获取服务器中的版本信息文件 2、解析XML文件 3、写入更新信息类
	 * @throws Exception 
	 */
	private void getUpdataInfo() throws Exception{
		mUpdataInfo = new UpdataInfo();
		ParseXmlUtils mParseXmlUtils = new ParseXmlUtils();
		//InputStream mInputStream = mFunction.readFile(new URI("http://127.0.0.1/updata.xml"));
		InputStream mInputStream = new ByteArrayInputStream(s.getBytes("utf-8")); 
		mParseXmlUtils.ReadXML(mInputStream, new UpdataContentHandler());
	}
	
	private void getCurVersion() {
        try {
            PackageInfo pInfo = mContext.getPackageManager().getPackageInfo(mContext.getPackageName(), 0);
            curVersion = pInfo.versionName;
        } catch (Exception e) {
            Log.i("update", e.getMessage());
            curVersion = "1.0";
        }

    }
}
